package com.mdd.admin.validate;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mdd.common.validator.annotation.IDMust;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 新建合同基本信息参数
 * @author LikeAdmin
 */
@Data
@ApiModel("新建合同基本信息更新参数")
public class NewContractUpdateValidate implements Serializable {

    private static final long serialVersionUID = 1L;

    @IDMust(message = "id参数必传且需大于0")
    @ApiModelProperty(value = "主键ID")
    private String id;

    @ApiModelProperty(value = "是否删除")
    private Integer isDelete;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String createTime;

    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String updateTime;

    @ApiModelProperty(value = "删除时间")
    private Long deleteTime;

    @ApiModelProperty(value = "合同编号")
    private String contractId;

    @ApiModelProperty(value = "合同名称")
    private String contractName;

    @ApiModelProperty(value = "客户名称")
    @NotNull(message = "customerName参数缺失")
    private String customerName;

    @ApiModelProperty(value = "金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "创建人")
    private String creator;

    @ApiModelProperty(value = "当前状态")
    private String currentState;

    @ApiModelProperty(value = "官费")
    private BigDecimal officialFee;

    @ApiModelProperty(value = "代理费")
    private BigDecimal agencyFee;

    @ApiModelProperty(value = "收款日期")
    private String gatheringDate;

    @ApiModelProperty(value = "收款金额")
    private BigDecimal gatheringAmount;

    @ApiModelProperty(value = "当前办理人")
    private String currentManager;

    @ApiModelProperty(value = "最后办理时间")
    private String finalProcessingTime;

    @ApiModelProperty(value = "合同开始时间")
    private String contractStartTime;

    @ApiModelProperty(value = "合同结束时间")
    private String contractEndTime;

    @ApiModelProperty(value = "合同签约日期")
    private String dateContractSigning;

    @ApiModelProperty(value = "是否开卷")
    private String isUncoil;

    @ApiModelProperty(value = "对应客户")
    @NotNull(message = "correspondingCustomer参数缺失")
    private String correspondingCustomer;

    @ApiModelProperty(value = "对应商机")
    private String correspondingBusiness;

    @ApiModelProperty(value = "合同总金额")
    private BigDecimal contractAmount;

    @ApiModelProperty(value = "合同总成本")
    private BigDecimal contractTco;

    @ApiModelProperty(value = "合同有效时间")
    private String contractValidTime;

    @ApiModelProperty(value = "案件数量")
    private Long caseload;

    @ApiModelProperty(value = "甲方签约人")
    private String partySigner;

    @ApiModelProperty(value = "甲方签约人手机")
    private String partyPhone;

    @ApiModelProperty(value = "甲方签约人电话")
    private String partyCellphone;

    @ApiModelProperty(value = "甲方签约人邮箱")
    private String partyEmail;

    @ApiModelProperty(value = "甲方签约人传真")
    private String contractFax;

    @ApiModelProperty(value = "业务人员")
    private String fieldStaff;

    @ApiModelProperty(value = "业务人员id")
    private String fieldStaffId;

    @ApiModelProperty(value = "合同类型")
    @NotNull(message = "contractType参数缺失")
    private String contractType;

    @ApiModelProperty(value = "付款方式")
    @NotNull(message = "paymentMethod参数缺失")
    private String paymentMethod;

    @ApiModelProperty(value = "乙方签约公司")
    private String partybFirm;

    @ApiModelProperty(value = "乙方签约人")
    private String partybSigner;

    @ApiModelProperty(value = "乙方签约人手机")
    private String partybPhone;

    @ApiModelProperty(value = "签约日期")
    private String signedDate;

    @ApiModelProperty(value = "合同领用日期")
    private String contractDate;

    @ApiModelProperty(value = "首付到账时间")
    private String downPayment;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "合同状态")
    private String contractState;

    @ApiModelProperty(value = "下次跟进时间")
    private String nextTime;

    @ApiModelProperty(value = "跟进方式")
    private String followupMethod;

    @ApiModelProperty(value = "跟进时间")
    private String followupTime;

    @ApiModelProperty(value = "跟进状态")
    private String followupStatus;

    @ApiModelProperty(value = "跟进人员")
    private String followupPersonnel;

    @ApiModelProperty(value = "上传附件")
    private String uploadAttachment;

    @ApiModelProperty(value = "跟进内容")
    private String followupContent;

    @ApiModelProperty(value = "修改人编号")
    private Long updateUserId;

    @ApiModelProperty(value = "修改人名称")
    private String updateUserName;

    @ApiModelProperty(value = "协作人")
    private String collaborator;

    @ApiModelProperty(value = "协作人id")
    private Long collaboratorId;

    @ApiModelProperty(value = "所属部门")
    private String department;

    @ApiModelProperty(value = "操作人ID")
    private Long userId;

    @ApiModelProperty(value = "操作人名称")
    private String userName;

}
